Frequency shift keying (FSK) is a modulation technique for transmitting digital signals. This technique is insensitive to interference. In frequency shift keying, the carrier frequency of a periodic sinusoidal oscillation is changed between a set of different frequencies which represent the individual transmitted symbols.
During the modulation, a transmitted symbol is assigned to a specified transmission frequency. On the other hand, during the demodulation, a specified frequency is detected and the corresponding symbol is output for further data processing. One exemplary parameter of frequency shift keying is an integral number of available transmission frequencies.
In its simplest form, only two different symbols are present, so-called binary FSK, which are transmitted via two different symbol frequencies f1 and f2. In this case, the bit rate is equal to the symbol rate. This form can be used for data transmission according to the HART protocol in measuring and control technology.
The Goertzel algorithm, as discussed at <<http://de.wikipedia.org/wiki/Goertzel-Algorithmus>>, is a digital signal processing technique and represents a special form of discrete Fourier transformation (DFT). In contrast to the various fast calculation methods in discrete Fourier transformation (DFT) which can calculate all discrete spectral components in one block, it is possible with the Goertzel algorithm to calculate only individual discrete spectral components.
The algorithm is based on a structure consisting of a digital filter which is extended by a state control factor. The states subdivide the calculation into the return branch in which the input values sampled in the time domain are loaded, and into a forward branch which delivers the output signal. The return loop can be passed with each digital sample and be configured as a recursive digital filter having two state memories and one accumulator. The forward branch can be passed once only after N samples and delivers from the state memories the calculated complex output value, the spectral component in amount and phase. The number of samples N can assume any positive integral values.
It is known that the quality of detection of a discrete spectral component increases with an increasing number of samples N.
The Goertzel algorithm can specify 4N additions and 4N multiplications per calculation of one spectral component, the symbol frequencies f1 and f2 in FSK. In principle, using the Goertzel algorithm in FSK demodulation is known from U.S. Pat. No. 5,818,296 A. The implementation of the Goertzel algorithm is described in the document “The Goertzel Algorithm”, <<http://eetimes.com/design/embedded/4024443/The-Goertzel-Algorithm>>.
In addition, a technical implementation is known from the Application Report by the company Texas Instruments “Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80”, 1996, Digital Signal Processing Solutions. This refers to the detection of dialing tones and their combinations of the multi-frequency tone dialing method in telephony. In this context, the variable tone dialing frequencies, which are between 697 Hz and 1477 Hz, can be sampled with a fixed sampling rate of 8 kHz.
In principle, the Goertzel algorithm can be suitable for the demodulation of FSK signals as used in automation technology for communication between central and peripheral devices. However, this is in conflict with the still fairly high computing complexity, the time and power specified by which is not available, especially in real-time-capable peripheral devices which are fed from a conductor loop with limited power for reasons of explosion protection. Such a device has available a maximum of 96 mW for its entire operation. But this includes at least not conclusively means for communication, for signal processing in accordance with the respective automation-related task, for signal conversion, for measurement value detection or setpoint output and diagnostic means.
A demodulator for frequency-shift keyed signals is disclosed, comprising: a processor configured to filter a line signal, sample the filtered signal and process samples output from the filter with a Goertzel algorithm, comparing a result of the algorithm to a threshold to determine whether the filter output is to be feedback for further processing with the Goertzel algorithm.